package cn.com.wangluotongxin.merchants.service;

import cn.com.wangluotongxin.merchants.dto.DMerchantsRoleDto;
import cn.com.wangluotongxin.merchants.dto.RoleDto;
import cn.com.wangluotongxin.merchants.eureka.form.AddMerchantsRoleEditForm;
import cn.com.wangluotongxin.merchants.eureka.form.AddMerchantsRoleForm;
import cn.com.wangluotongxin.merchants.form.RoleEditForm;
import cn.com.wangluotongxin.merchants.form.RoleForm;
import cn.com.wangluotongxin.merchants.model.MerchantsRole;
import cn.com.wangluotongxin.merchants.vo.DMerchantsRoleVo;
import cn.com.wangluotongxin.merchants.vo.RoleVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 商户管理-角色信息 服务类
 * </p>
 *
 * @author AutoGenerator
 * @since 2024-04-26
 */
public interface IMerchantsRoleService extends IService<MerchantsRole> {

    IPage<DMerchantsRoleVo> getPage(DMerchantsRoleDto dto);

    DMerchantsRoleVo detail(Integer id);

    List<MerchantsRole> getByUser(Integer userId);

    List<MerchantsRole> getAllRoles();

    List<RoleVo> getAllRoleMenus();

    void initRole(String targetTenantId);

    void createRole(Integer id, Integer sourceId, String roleName, String remark, Integer roleSort, List<Integer> menuIds);

    void add(AddMerchantsRoleForm form);

    void edit(AddMerchantsRoleEditForm form);

    IPage<RoleVo> getRolePage(RoleDto dto);

    RoleVo roleDetail(Integer id);

    void addRole(RoleForm form);

    void editRole(RoleEditForm form);

    List<RoleVo> getList();
}
